#ifndef EDFSIGNAL_H
#define EDFSIGNAL_H

#include <biosignal/sourcesignal.h>

#include <string>

namespace biosignal {
namespace edf {

class EDFModel;
class EDFSourceSignal: public SourceSignal {
	friend class EDFParser;

public:
	EDFSourceSignal(const EDFModel* edf_model, string label);
	typedef short int sample_type;
	double physical_minimum() const;
	double physical_maximum() const;
	long digital_minimum() const;
	long digital_maximum() const;
	std::string prefiltering() const;
	int nr_samples_in_data_record() const;
	double value(sample_type raw_num) const;
private:
	double m_physical_minimum;
	double m_physical_maximum;
	long m_digital_minimum;
	long m_digital_maximum;
	std::string m_prefiltering;
	int m_nr_samples_in_data_record;
	std::string m_reserved;

	double m_scale;
	void init();
	const EDFModel* m_edf_model;

};

}
}
#endif // EDFSIGNAL_H
